Skip to main content

Billing Test Scenarios

The billing test scenarios are covering two negative cases and three positive cases. The most comprehensive is the scenario 4.

This Excel spreadsheet was used to calculate the expected values for TOTAL and timeslice calculations:

Billing test data preparation and calculation.xlsx

Scenario 1 - Missing Data

This scenario covers the situation where there is no data to base the billing determinant on. In such cases, the flow should fail.

Pre-requisites

  • A METERING_POINT datasource exists with channel
    • ACTIVE_DELIVERY_INT15T_VEE
  • The channel ACTIVE_DELIVERY_INT15T_VEE contains data from 2025-02-13 until 2025-02-14, status should be OK (measured or estimated on the VEE channel)
  • Billing message
    {
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee5",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe11",
"timestamp": "2025-02-18T09:53:05Z",
"source": "Test_Billing_System",
"ackRequired": false,
"verb": "created",
"noun": "GetMeterReadings"
},
"payload": {
"GetMeterReadings": [
{
"mRID": "301009519",
"UsagePoint": {
"mRID": "YOUR_METERING_POINT_DATASOURCE_ID"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2025-02-15T23:00:00.000Z",
"end": "2025-03-15T23:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "0.0.2.4.1.1.12.0.0.0.0.0.0.0.0.0.72.0"
}
]
}
]
}
}

Steps

  1. Set up pre requisites
  2. ingest billing request

Expected Results

  • Data is attempted to be loaded, rule succeeds (no fail)
  • standard_billing_validation rule should fail the flow (no data for the entire billing period for this channel - error message should specify reason for failure)

Scenario 2 - Bad Status

This scenario covers the situation where one or more datapoint has a status that is not accepted for the billing calculation: it only accepts “measured” and “estimated”.

Prerequisites

  • A METERING_POINT datasource exists with channel
    • ACTIVE_DELIVERY_INT15T_VEE
  • Let there be data for the period [2025-01-01, 2025-03-15), with at least one datapoint that has status “disturbed” or “missing”
  • Billing message
    {
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee5",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe12",
"timestamp": "2025-02-18T09:53:05Z",
"source": "Test_Billing_System",
"ackRequired": false,
"verb": "created",
"noun": "GetMeterReadings"
},
"payload": {
"GetMeterReadings": [
{
"mRID": "301009519",
"UsagePoint": {
"mRID": "ANOTHER_METERING_POINT_DATASOURCE_ID"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2025-02-15T23:00:00.000Z",
"end": "2025-03-15T23:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "0.0.2.4.1.1.12.0.0.0.0.0.0.0.0.0.72.0"
},
]
}
]
}
}

Steps

  1. Set up prerequisites
  2. ingest billing request

Expected Results

  • data is loaded correctly
  • standard_billing_validation rule should fail the flow because there is a bad status (error message should specify reason for failure)

Scenario 3 - One Datasource, one period, total

This scenario covers the situation where billing request message has one datasource .

Prerequisites

  1. One (1) METERING_POINT datasource exists with channelACTIVE_DELIVERY_INT15T_VEE and
  2. tag holiday_calendar.name = Europe/Amsterdam
  3. Data is available for the channelACTIVE_DELIVERY_INT15T_VEE for datasources:
  4. BILLING_SCN3_DATASOURCE_1 for the period 2024-07-31 23:00:00 UTC+02 till 2024-09-01 01:00:00 UTC+02, with all datapoints having status:
  5. measured
  6. Data: BILLING testing data Scenario 3 2024.07.31 23 - 2024.09.01 01.csv
  7. Channel classifierACTIVE_DELIVERY_TOTAL_BILLING exists
  8. type: gauge
  9. channel family: “bl”
  10. enum dpaquality_status:
  11. measured
  12. estimated
  13. missing:
  14. The Pub/Sub topic described in the Namespace property pubsub_topic_name exists in the GCP.
  15. BILLING datasource exists

Steps

  1. Set up pre requisites
  2. Ingest the billing request message:
    {
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee5",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe13",
"timestamp": "2025-02-18T09:53:05Z",
"source": "Test_Billing_System",
"ackRequired": false,
"verb": "created",
"noun": "GetMeterReadings"
},
"payload": {
"GetMeterReadings": [
{
"mRID": "METER_1",
"UsagePoint": {
"mRID": "BILLING_SCN3_DATASOURCE_1"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2024-07-31T22:00:00.000Z",
"end": "2024-08-31T22:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "8.26.2.4.1.1.12.0.0.0.0.0.0.0.0.3.72.0"
}
]
}
]
}
}

Expected Results

  1. Billing determinants are stored for that datasource to channel ACTIVE_DELIVERY_TOTAL_BILLING:
  2. Timestamp: 2024-09-01 00:00:00 UTC+02
  3. Value: 63999.624
  4. dpa “quality_status”: measured
  5. Output file (below) is saved in the File Manager
  6. Output file (below) is sent to pubsub topic defined in namespace properties:
    {
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee6",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe13",
"timestamp": "2025-02-18T09:53:05Z",
"source": "EDM",
"ackRequired": false,
"verb": "reply",
"noun": "GetMeterReadings"
},
"payload": {
"MeterReadings": [
{
"isComplete": true,
"mRID": "METER_1",
"Readings": [
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.0.0.0.0.3.72.0"
},
"timeStamp": "2024-09-01T00:00:00+02:00",
"value": "63999.624"
}
],
"UsagePoint": {
"mRID": "BILLING_SCN3_DATASOURCE_1"
},
"valuesInterval": {
"start": "2024-08-01T00:00:00+02:00",
"end": "2024-09-01T00:00:00+02:00"
}
}
]
}
}

Scenario 4 - Multiple Datasources, different periods, timeslices, register, Pmax

This scenario covers the situation where billing request message has multiple datasources. Data provided has one extra datapoint at the start and end of the billing period to ensure that the billing process correctly loads the data (ignoring any data around a period).

Prerequisites

  1. Three (3) METERING_POINT datasource exists with channeland
  2. tag holiday_calendar.name = Europe/Amsterdam
  3. tag customer_agreement.tariff_name = Test-complex
  4. Data is available for:
  5. BILLING_SCN4_DATASOURCE_1
  6. channel ACTIVE_DELIVERY_INT15T_VEE
  7. for the period 2024-09-30 23:00:00 UTC+02 till 2025-01-01 01:00:00 UTC+01, with one datapoint having status “estimated”
  8. data:
  9. BILLING_SCN4_DATASOURCE_2
  10. channel ACTIVE_DELIVERY_READ24H_VEE
  11. for the period 2024-11-30 00:00:00 UTC+01 till 2025-01-02 00:00:00 UTC+01, with one datapoint in period having status “estimated” and the last datapoint having status “measured”
  12. BILLING_SCN4_DATASOURCE_3
  13. channel ACTIVE_DELIVERY_PMAX1M_VEE
  14. for the period 2025-01-31 00:00:00 UTC+01 till 2025-03-02 00:00:00 UTC+01, with all datapoints having status “measured”
  15. Data: BILLING testing data Scenario 4 2024.09.30 23 - 2025.03.01 01.csv
  16. Channelclassifiers exist:
  17. ACTIVE_DELIVERY_DAY_BILLING
  18. ACTIVE_DELIVERY_NIGHT_BILLING
  19. ACTIVE_DELIVERY_PEAK_BILLING
  20. ACTIVE_DELIVERY_OFFPEAK_BILLING
  21. ACTIVE_DELIVERY_READ_BILLING
  22. ACTIVE_DELIVERY_PMAX_BILLING
  23. type: gauge
  24. channel family: “bl”
  25. enum dpaquality_status:
  26. measured
  27. estimated
  28. missing
  29. BILLING datasource exists
  30. The Pub/Sub topic described in the Namespace property pubsub_topic_name exists in the GCP.
  31. Timeslice group “Test-complex” is configured as following:

Steps

  1. Ingest the billing request message:
    {
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee5",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe14",
"timestamp": "2025-02-18T09:53:05Z",
"source": "Test_Billing_System",
"ackRequired": false,
"verb": "created",
"noun": "GetMeterReadings"
},
"payload": {
"GetMeterReadings": [
{
"mRID": "METER_1",
"UsagePoint": {
"mRID": "BILLING_SCN4_DATASOURCE_1"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2024-09-30T22:00:00.000Z",
"end": "2024-12-31T23:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
},
]
},
{
"mRID": "METER_2",
"UsagePoint": {
"mRID": "BILLING_SCN4_DATASOURCE_2"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2024-11-30T23:00:00.000Z",
"end": "2024-12-31T23:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "8.0.4.1.1.1.12.0.0.0.0.0.0.0.0.3.72.0"
},
]
},
{
"mRID": "METER_3",
"UsagePoint": {
"mRID": "BILLING_SCN4_DATASOURCE_3"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2025-01-31T23:00:00.000Z",
"end": "2025-02-28T23:00:00.000Z"

}
}
],
"ReadingTypes": [
{
"ref": "8.8.0.0.1.1.37.0.0.0.0.0.0.0.0.3.38.0"
},
]
}
]
}
}

Expected Results

  1. Billing determinants are stored for each datasource to its (gauge type of) channel belonging to a channel family “bl”.
  2. BILLING_SCN4_DATASOURCE_1
  3. ACTIVE_DELIVERY_DAY_BILLING
  4. timestamp: 2025-01-01T00:00:00+01:00
  5. value: 194997.127
  6. quality_status: “measured”
  7. ACTIVE_DELIVERY_NIGHT_BILLING
  8. timestamp: 2025-01-01T00:00:00+01:00
  9. value: 222205.56 222321.998
  10. quality_status: “estimated”
  11. ACTIVE_DELIVERY_PEAK_BILLING
  12. timestamp: 2025-01-01T00:00:00+01:00
  13. value: 29767.394
  14. quality_status: “measured”
  15. ACTIVE_DELIVERY_OFFPEAK_BILLING
  16. timestamp: 2025-01-01T00:00:00+01:00
  17. value: 12224.745
  18. quality_status: “measured”
  19. BILLING_SCN4_DATASOURCE_2
  20. ACTIVE_DELIVERY_READ24H_BILLING
  21. timestamp: 2025-01-01T00:00:00+01:00
  22. value: 459214.722
  23. quality_status: “measured”
  24. BILLING_SCN4_DATASOURCE_3
  25. ACTIVE_DELIVERY_PMAX1M_BILLING
  26. timestamp: timestamp: 2025-03-01T00:00:00+01:00
  27. value: 9002.704
  28. quality_status: “measured”
  29. Timestamp on the annotation: 2025-02-22 00:00:00
  30. Output file (below) is saved in the File Manager
  31. Output file (below) is sent to pubsub topic defined in namespace properties:
    {
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee6",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe14",
"timestamp": "2025-02-18T09:53:05Z",
"source": "EDM",
"ackRequired": false,
"verb": "reply",
"noun": "GetMeterReadings"
},
"payload": {
"MeterReadings": [
{
"isComplete": true,
"mRID": "METER_1",
"Readings": [
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "194997.127"
},
{
"ReadingQuality": "estimated",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "222321.998"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "29767.394"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "12224.745"
},
],
"UsagePoint": {
"mRID": "BILLING_SCN4_DATASOURCE_1"
},
"valuesInterval": {
"start": "2025-02-16T00:00:00+01:00",
"end": "2025-03-16T00:00:00+01:00"
}
},
{
"isComplete": true,
"mRID": "METER_2",
"Readings": [
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.0.4.1.1.1.12.0.0.0.0.0.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "459214.722"
}
],
"UsagePoint": {
"mRID": "BILLING_SCN4_DATASOURCE_2"
},
"valuesInterval": {
"start": "2024-12-01T00:00:00+01:00",
"end": "2025-01-01T00:00:00+01:00"
}
},
{
"isComplete": true,
"mRID": "METER_3",
"Readings": [
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.8.0.0.1.1.37.0.0.0.0.0.0.0.0.3.38.0"
},
"timeStamp": "2025-03-01T00:00:00+01:00",
"value": "9002.704"
}
],
"UsagePoint": {
"mRID": "BILLING_SCN4_DATASOURCE_3"
},
"valuesInterval": {
"start": "2025-02-01T00:00:00+01:00",
"end": "2025-03-01T00:00:00+01:00"
}
}
]
}
}

Scenario 5 - One Datasource, one period, timeslices, split by month

This scenario covers the situation where billing request message has one datasource and the billing period spans over multiple months but the results are reported monthly

Prerequisites

  1. One (1) METERING_POINT datasource exists with channelACTIVE_DELIVERY_INT15T_VEE
  2. tag holiday_calendar.name = Europe/Amsterdam
  3. tag customer_agreement.tariff_name = Test-complex
  4. Data is available for the channelACTIVE_DELIVERY_INT15T_VEE for datasources:
  5. BILLING_SCN5_DATASOURCE_1 for the period 2024-10-01 00:00:00 UTC+02 till 2025-01-01 02:00:00 UTC+01, with all datapoints having quality_status:
  6. measured OR
  7. estimated
  8. Data: BILLING testing data Scenario 5 2024.09.30 23 - 2025.01.01 01.csv
  9. Channelclassifiers exist:
  10. ACTIVE_DELIVERY_DAY_BILLING
  11. ACTIVE_DELIVERY_NIGHT_BILLING
  12. ACTIVE_DELIVERY_PEAK_BILLING
  13. ACTIVE_DELIVERY_OFFPEAK_BILLING
  14. type: gauge
  15. channel family: “bl”
  16. dpaquality_status:
  17. measured
  18. estimated
  19. missing
  20. The Pub/Sub topic described in the Namespace property pubsub_topic_name exists in the GCP.
  21. Billing rule has parameter **split_by_month = True**
  22. BILLING datasource exists
  23. Timeslice group “Test-complex” is configured as following:

Steps

  1. Set up pre requisites
  2. Ingest the billing request message:
    {
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee5",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe15",
"timestamp": "2025-02-18T09:53:05Z",
"source": "Test_Billing_System",
"ackRequired": false,
"verb": "created",
"noun": "GetMeterReadings"
},
"payload": {
"GetMeterReadings": [
{
"mRID": "METER_1",
"UsagePoint": {
"mRID": "BILLING_SCN5_DATASOURCE_1"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2024-09-30T22:00:00.000Z",
"end": "2024-12-31T23:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
}
]
}
]
}
}

Expected Results

  1. Billing determinants are stored for that datasource to channel ACTIVE_DELIVERY_BILLING
  2. ACTIVE_DELIVERY_DAY_BILLING
  3. timestamp: 2025-01-01T00:00:00+01:00
  4. value: 97686.3
  5. quality_status: “measured”
  6. timestamp: 2024-12-01T00:00:00+01:00
  7. value: 66107.865
  8. quality_status: “measured”
  9. timestamp: 2024-11-01T00:00:00+01:00
  10. value: 31202.962
  11. quality_status: “measured”
  12. ACTIVE_DELIVERY_NIGHT_BILLING
  13. timestamp: 2025-01-01T00:00:00+01:00
  14. value: 122017.228
  15. quality_status: “measured”
  16. timestamp: 2024-12-01T00:00:00+01:00
  17. value: 72920.121
  18. quality_status: “measured”
  19. timestamp: 2024-11-01T00:00:00+01:00
  20. value: 27268.211 27384.649
  21. quality_status: “estimated
  22. ACTIVE_DELIVERY_PEAK_BILLING
  23. timestamp: 2025-01-01T00:00:00+01:00
  24. value: 17826.134
  25. quality_status: “measured”
  26. timestamp: 2024-12-01T00:00:00+01:00
  27. value: 11227.134
  28. quality_status: “measured”
  29. timestamp: 2024-11-01T00:00:00+01:00
  30. value: 714.126
  31. quality_status: “measured”
  32. ACTIVE_DELIVERY_OFFPEAK_BILLING
  33. timestamp: 2025-01-01T00:00:00+01:00
  34. value: 7410.42
  35. quality_status: “measured”
  36. timestamp: 2024-12-01T00:00:00+01:00
  37. value: 0
  38. quality_status: “measured”
  39. timestamp: 2024-11-01T00:00:00+01:00
  40. value: 4814.325
  41. quality_status: “measured”
  42. Output file (below) is saved in the File Manager
  43. Output file (below) is sent to pubsub topic defined in namespace properties:
    {
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee6",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe15",
"timestamp": "2025-02-18T09:53:05Z",
"source": "EDM",
"ackRequired": false,
"verb": "reply",
"noun": "GetMeterReadings"
},
"payload": {
"MeterReadings": [
{
"isComplete": true,
"mRID": "METER_1",
"Readings": [
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0"
},
"timeStamp": "2024-11-01T00:00:00+01:00",
"value": "31202.962"
},
{
"ReadingQuality": "estimated",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0"
},
"timeStamp": "2024-11-01T00:00:00+01:00",
"value": "27384.649"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0"
},
"timeStamp": "2024-11-01T00:00:00+01:00",
"value": "4814.325"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
},
"timeStamp": "2024-11-01T00:00:00+01:00",
"value": "0"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0"
},
"timeStamp": "2024-12-01T00:00:00+01:00",
"value": "66107.865"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0"
},
"timeStamp": "2024-12-01T00:00:00+01:00",
"value": "72920.121"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0"
},
"timeStamp": "2024-12-01T00:00:00+01:00",
"value": "11227.134"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
},
"timeStamp": "2024-12-01T00:00:00+01:00",
"value": "0"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0"
},
"timeStamp": "2024-12-01T00:00:00+01:00",
"value": "97686.3"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "122017.228"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "29767.394"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
},
"timeStamp": "2025-01-01T00:00:00+01:00",
"value": "12224.745"
}
],
"UsagePoint": {
"mRID": "BILLING_SCN5_DATASOURCE_1"
},
"valuesInterval": {
"start": "2025-10-01T00:00:00+02:00",
"end": "2025-01-01T00:00:00+01:00"
}
}
]
}
}

Scenario 6 - One Datasource, moving to DST, timeslices + register

This scenario covers the situation where billing request message has one datasource and the billing period is for single month in March where DST starts and calculation is done for intervals and registers

Prerequisites

  1. One (1) METERING_POINT datasource exists with channelACTIVE_DELIVERY_INT15T_VEE
  2. tag holiday_calendar.name = Europe/Amsterdam
  3. tag customer_agreement.tariff_name = Test-complex
  4. Data is available for datasources:
  5. BILLING_SCN5_DATASOURCE_1 for channels ACTIVE_DELIVERY_INT15T_VEE AND ACTIVE_DELIVERY_READ24H_VEE**** for the period 2025-03-01 00:00:00 UTC+01 till 2025-04-01 02:00:00 UTC+02, with all datapoints having quality_status:
  6. measured
  7. Data:BILLING_SCN6_DATASOURCE_1 Scenario 6 2025.02.28 22 - 2025.04.01 02.csv
  8. Channelclassifiers exist:
  9. ACTIVE_DELIVERY_DAY_BILLING
  10. ACTIVE_DELIVERY_NIGHT_BILLING
  11. ACTIVE_DELIVERY_PEAK_BILLING
  12. ACTIVE_DELIVERY_OFFPEAK_BILLING
  13. ACTIVE_DELIVERY_READ_BILLING
  14. type: gauge
  15. channel family: “bl”
  16. dpaquality_status:
  17. measured
  18. estimated
  19. missing
  20. The Pub/Sub topic described in the Namespace property pubsub_topic_name exists in the GCP.
  21. Billing rule has parameter **split_by_month = True**
  22. BILLING datasource exists
  23. Timeslice group “Test-complex” is configured as following:

Steps

  1. Set up pre requisites
  2. Ingest the billing request message:
    {
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee5",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe15",
"timestamp": "2025-05-18T09:53:05Z",
"source": "Test_Billing_System",
"ackRequired": false,
"verb": "created",
"noun": "GetMeterReadings"
},
"payload": {
"GetMeterReadings": [
{
"mRID": "METER_1",
"UsagePoint": {
"mRID": "BILLING_SCN6_DATASOURCE_1"
},
"TimeSchedules": [
{
"scheduleInterval": {
"start": "2025-03-30T23:00:00.000Z",
"end": "2025-03-31T22:00:00.000Z"
}
}
],
"ReadingTypes": [
{
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0",
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0",
"ref": "8.0.4.1.1.1.12.0.0.0.0.0.0.0.0.3.72.0"
}
]
}
]
}
}

Expected Results

  1. Billing determinants are stored for that datasource to channel ACTIVE_DELIVERY_BILLING
  2. ACTIVE_DELIVERY_DAY_BILLING
  3. timestamp: 2025-04-01T00:00:00+02:00
  4. value: 215.139
  5. quality_status: “measured”
  6. ACTIVE_DELIVERY_NIGHT_BILLING
  7. timestamp: 2025-04-01T00:00:00+02:00
  8. value: 242.509
  9. quality_status: “measured”
  10. ACTIVE_DELIVERY_PEAK_BILLING
  11. timestamp: 2025-04-01T00:00:00+02:00
  12. value: 36.660
  13. quality_status: “measured”
  14. ACTIVE_DELIVERY_OFFPEAK_BILLING
  15. timestamp: 2025-04-01T00:00:00+02:00
  16. value: 15.596
  17. quality_status: “measured”
  18. ACTIVE_DELIVERY_READ_BILLING
  19. timestamp: 2025-04-01T00:00:00+02:00
  20. value: 1688.594656
  21. quality_status: “measured”
  22. Output file (below) is saved in the File Manager
  23. Output file (below) is sent to pubsub topic defined in namespace properties:
    {
"header": {
"messageId": "df3615f0-44c8-4f3e-a0fa-809a549edee6",
"correlationId": "9a2e54de-559a-4544-9671-1239df69fe15",
"timestamp": "2025-02-18T09:53:05Z",
"source": "EDM",
"ackRequired": false,
"verb": "reply",
"noun": "GetMeterReadings"
},
"payload": {
"MeterReadings": [
{
"isComplete": true,
"mRID": "METER_1",
"Readings": [
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.1.0.0.0.3.72.0"
},
"timeStamp": "2025-04-01T00:00:00+02:00",
"value": "215.139"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.2.0.0.0.3.72.0"
},
"timeStamp": "2025-04-01T00:00:00+02:00",
"value": "242.509"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.3.0.0.0.3.72.0"
},
"timeStamp": "2025-04-01T00:00:00+02:00",
"value": "36.660"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.26.2.4.1.1.12.0.0.0.0.4.0.0.0.3.72.0"
},
"timeStamp": "2025-04-01T00:00:00+02:00",
"value": "15.596"
},
{
"ReadingQuality": "measured",
"ReadingType": {
"ref": "8.0.4.1.1.1.12.0.0.0.0.0.0.0.0.3.72.0"
},
"timeStamp": "2025-04-01T00:00:00+02:00",
"value": "1688.594656"
},
],
"UsagePoint": {
"mRID": "BILLING_SCN6_DATASOURCE_1"
},
"valuesInterval": {
"start": "2025-03-01T00:00:00+01:00",
"end": "2025-04-01T00:00:00+02:00"
}
}
]
}
}